package com.easyadmin.service;

import com.easyadmin.entity.po.SysMenu;
import com.easyadmin.entity.query.SysMenuQuery;
import com.easyadmin.entity.vo.PaginationResult;
import com.easyadmin.exception.BusinessException;

import java.util.List;


/**
 * 菜单表 业务接口
 */
public interface SysMenuService {

    /**
     * 根据条件查询列表
     */
    List<SysMenu> findListByParam(SysMenuQuery param, Boolean disabled);

    /**
     * 根据条件查询列表
     */
    Integer findCountByParam(SysMenuQuery param);

    /**
     * 分页查询
     */
    PaginationResult<SysMenu> findListByPage(SysMenuQuery param);

    /**
     * 新增
     */
    Integer add(SysMenu bean) throws BusinessException;

    /**
     * 批量新增
     */
    Integer addBatch(List<SysMenu> listBean);

    /**
     * 批量新增/修改
     */
    Integer addOrUpdateBatch(List<SysMenu> listBean);

    /**
     * 根据MenuId修改
     */
    Integer updateByMenuId(SysMenu bean, Integer menuId);


    /**
     * 根据MenuId删除
     */
    Integer deleteByMenuId(Integer menuId) throws BusinessException;


    /**
     * 根据MenuId查询对象
     */
    SysMenu getSysMenuByMenuId(Integer menuId);

    void saveMenu(SysMenu sysMenu);

    List<SysMenu> selectAllMenuByRoleIds(String roleIds);

    List<SysMenu> convertLine2Tree4Menu(List<SysMenu> dataList, Integer pid, Boolean disabled);
}